import 'package:json_annotation/json_annotation.dart';

part 'popular_top_model.g.dart';

@JsonSerializable()
class PopularTopModel {
  final List<PopularTopList>? topList;
  final dynamic curUserInfo;
  final num? timeLeft;
  final dynamic weekGiftInfo;
  final List<PopularTopList>? topRoomList;

  const PopularTopModel({
    this.topList,
    this.curUserInfo,
    this.timeLeft,
    this.weekGiftInfo,
    this.topRoomList,
  });

  factory PopularTopModel.fromJson(Map<String, dynamic> json) =>
      _$PopularTopModelFromJson(json);

  Map<String, dynamic> toJson() => _$PopularTopModelToJson(this);
}

@JsonSerializable()
class PopularTopList {
  final num? numericValue;
  final dynamic sort;
  final num? userId;
  final String? nickname;
  final String? headPortraitsUrl;
  final num? gender;
  final dynamic nobleRankCode;
  final dynamic nobleName;
  final dynamic emblemSimpleUrl;
  final dynamic memberLevel;
  final dynamic memberEmblem;
  final num? memberExp;
  final dynamic seatFrameUrl;
  final dynamic h5SeatFrameUrl;
  final dynamic roomMicIndex;
  final dynamic roomNo;
  final dynamic roomName;
  final dynamic scoreWeight;
  final dynamic rightBottomIcon;
  final dynamic playStatus;
  final dynamic about;
  final bool? invisible;
  final dynamic heartWishList;
  final dynamic wealthInfo;
  final dynamic popularityInfo;
  final dynamic richerInfo;
  final dynamic lastRank;
  final dynamic rankValue;
  final bool? isInRank;

  const PopularTopList({
    this.numericValue,
    this.sort,
    this.userId,
    this.nickname,
    this.headPortraitsUrl,
    this.gender,
    this.nobleRankCode,
    this.nobleName,
    this.emblemSimpleUrl,
    this.memberLevel,
    this.memberEmblem,
    this.memberExp,
    this.seatFrameUrl,
    this.h5SeatFrameUrl,
    this.roomMicIndex,
    this.roomNo,
    this.roomName,
    this.scoreWeight,
    this.rightBottomIcon,
    this.playStatus,
    this.about,
    this.invisible,
    this.heartWishList,
    this.wealthInfo,
    this.popularityInfo,
    this.richerInfo,
    this.lastRank,
    this.rankValue,
    this.isInRank,
  });

  factory PopularTopList.fromJson(Map<String, dynamic> json) =>
      _$PopularTopListFromJson(json);

  Map<String, dynamic> toJson() => _$PopularTopListToJson(this);
}
